home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / Tool Chest / Interfaces & Libraries / Interfaces / CIncludes / OCEStandardMail.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-06  |  22.7 KB  |  636 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        OCEStandardMail.h
  3.  
  4.      Contains:    Apple Open Collaboration Environment Standard Mail Interfaces.
  5.  
  6.      Version:    Technology:    AOCE Toolbox 1.02
  7.                  Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. */
  19.  
  20. #ifndef __OCESTANDARDMAIL__
  21. #define __OCESTANDARDMAIL__
  22.  
  23.  
  24. #ifndef __EVENTS__
  25. #include <Events.h>
  26. #endif
  27. /*    #include <Types.h>                                            */
  28. /*        #include <ConditionalMacros.h>                            */
  29. /*    #include <Quickdraw.h>                                        */
  30. /*        #include <MixedMode.h>                                    */
  31. /*        #include <QuickdrawText.h>                                */
  32. /*    #include <OSUtils.h>                                        */
  33. /*        #include <Memory.h>                                        */
  34.  
  35. #ifndef __APPLEEVENTS__
  36. #include <AppleEvents.h>
  37. #endif
  38. /*    #include <Errors.h>                                            */
  39. /*    #include <EPPC.h>                                            */
  40. /*        #include <AppleTalk.h>                                    */
  41. /*        #include <Files.h>                                        */
  42. /*            #include <Finder.h>                                    */
  43. /*        #include <PPCToolbox.h>                                    */
  44. /*        #include <Processes.h>                                    */
  45. /*    #include <Notification.h>                                    */
  46.  
  47. #ifndef __CONTROLS__
  48. #include <Controls.h>
  49. #endif
  50. /*    #include <Menus.h>                                            */
  51.  
  52. #ifndef __DIALOGS__
  53. #include <Dialogs.h>
  54. #endif
  55. /*    #include <Windows.h>                                        */
  56. /*    #include <TextEdit.h>                                        */
  57.  
  58. #ifndef __FILES__
  59. #include <Files.h>
  60. #endif
  61.  
  62. #ifndef __WINDOWS__
  63. #include <Windows.h>
  64. #endif
  65.  
  66. #ifndef __OCEAUTHDIR__
  67. #include <OCEAuthDir.h>
  68. #endif
  69. /*    #include <OCE.h>                                            */
  70. /*        #include <Aliases.h>                                    */
  71. /*        #include <Script.h>                                        */
  72. /*            #include <IntlResources.h>                            */
  73.  
  74. #ifndef __OCEMAIL__
  75. #include <OCEMail.h>
  76. #endif
  77. /*    #include <DigitalSignature.h>                                */
  78. /*    #include <OCEMessaging.h>                                    */
  79.  
  80. #ifdef __cplusplus
  81. extern "C" {
  82. #endif
  83.  
  84. #if PRAGMA_ALIGN_SUPPORTED
  85. #pragma options align=mac68k
  86. #endif
  87.  
  88. #if PRAGMA_IMPORT_SUPPORTED
  89. #pragma import on
  90. #endif
  91.  
  92.  
  93. enum {
  94.     kSMPVersion                    = 1,
  95.     gestaltSMPMailerVersion        = 'malr',
  96.     gestaltSMPSPSendLetterVersion = 'spsl',
  97.     kSMPNativeFormatName        = 'natv'
  98. };
  99.  
  100. struct LetterSpec {
  101.     unsigned long                    spec[3];
  102. };
  103.  
  104. typedef struct LetterSpec LetterSpec;
  105.  
  106.  
  107. enum {
  108.     typeLetterSpec                = 'lttr'
  109. };
  110.  
  111. /*    Wildcard used for filtering letter types. */
  112. enum {
  113.     FilterAnyLetter                = 'ltr*',
  114.     FilterAppleLetterContent    = 'ltc*',
  115.     FilterImageContent            = 'lti*'
  116. };
  117.  
  118. struct LetterDescriptor {
  119.     Boolean                            onDisk;
  120.     Boolean                            filler1;
  121.     union {
  122.         FSSpec                            fileSpec;
  123.         LetterSpec                        mailboxSpec;
  124.     } u;
  125. };
  126.  
  127. typedef struct LetterDescriptor LetterDescriptor;
  128.  
  129. /*
  130. SMPPSendAs values.  You may add the following values together to determine how the
  131. file is sent, but you may not set both kSMPSendAsEnclosureMask and kSMPSendFileOnlyMask.  This
  132. will allow you to send the letter as an image so that it will work with fax gateways
  133. and send as an enclosure as well.
  134. */
  135.  
  136. enum {
  137.     kSMPSendAsEnclosureBit,                                        /* Appears as letter with enclosures */
  138.     kSMPSendFileOnlyBit,                                        /* Appears as a file in mailbox. */
  139.     kSMPSendAsImageBit                                            /* Content imaged in letter */
  140. };
  141.  
  142. /* Values of SMPPSendAs */
  143. enum {
  144.     kSMPSendAsEnclosureMask        = 1 << kSMPSendAsEnclosureBit,
  145.     kSMPSendFileOnlyMask        = 1 << kSMPSendFileOnlyBit,
  146.     kSMPSendAsImageMask            = 1 << kSMPSendAsImageBit
  147. };
  148.  
  149. typedef Byte SMPPSendAs;
  150.  
  151. typedef pascal void (*SMPDrawImageProcPtr)(long refcon, Boolean inColor);
  152.  
  153. #if GENERATINGCFM
  154. typedef UniversalProcPtr SMPDrawImageUPP;
  155. #else
  156. typedef SMPDrawImageProcPtr SMPDrawImageUPP;
  157. #endif
  158.  
  159. enum {
  160.     uppSMPDrawImageProcInfo = kPascalStackBased
  161.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long)))
  162.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Boolean)))
  163. };
  164.  
  165. #if GENERATINGCFM
  166. #define NewSMPDrawImageProc(userRoutine)        \
  167.         (SMPDrawImageUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSMPDrawImageProcInfo, GetCurrentArchitecture())
  168. #else
  169. #define NewSMPDrawImageProc(userRoutine)        \
  170.         ((SMPDrawImageUPP) (userRoutine))
  171. #endif
  172.  
  173. #if GENERATINGCFM
  174. #define CallSMPDrawImageProc(userRoutine, refcon, inColor)        \
  175.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSMPDrawImageProcInfo, (refcon), (inColor))
  176. #else
  177. #define CallSMPDrawImageProc(userRoutine, refcon, inColor)        \
  178.         (*(userRoutine))((refcon), (inColor))
  179. #endif
  180.  
  181. struct SMPRecipientDescriptor {
  182.     struct SMPRecipientDescriptor    *next;                        /*  Q-Link. */
  183.     OSErr                            result;                        /*  result code when using the object. */
  184.     OCEPackedRecipient                *recipient;                    /*  Pointer to a Packed Address. */
  185.     unsigned long                    size;                        /*  length of recipient in bytes. */
  186.     MailRecipient                    theAddress;                    /*  structure points into recipient and theRID. */
  187.     RecordID                        theRID;                        /*  structure points into recipient. */
  188. };
  189.  
  190. typedef struct SMPRecipientDescriptor SMPRecipientDescriptor;
  191.  
  192. typedef SMPRecipientDescriptor *SMPRecipientDescriptorPtr;
  193.  
  194. struct SMPEnclosureDescriptor {
  195.     struct SMPEnclosureDescriptor    *next;
  196.     OSErr                            result;
  197.     FSSpec                            fileSpec;
  198.     OSType                            fileCreator;                /*  Creator of this enclosure. */
  199.     OSType                            fileType;                    /*  File Type of this enclosure. */
  200. };
  201.  
  202. typedef struct SMPEnclosureDescriptor SMPEnclosureDescriptor;
  203.  
  204. typedef SMPEnclosureDescriptor *SMPEnclosureDescriptorPtr;
  205.  
  206. struct SMPLetterPB {
  207.     OSErr                            result;                        /* result of operation */
  208.     RStringPtr                        subject;                    /* RString */
  209.     AuthIdentity                    senderIdentity;                /* Letter is sent from this Identity */
  210.     SMPRecipientDescriptorPtr        toList;                        /* Pointer to linked list */
  211.     SMPRecipientDescriptorPtr        ccList;                        /* Pointer to linked list */
  212.     SMPRecipientDescriptorPtr        bccList;                    /* Pointer to linked list */
  213.     ScriptCode                        script;                        /* Identifier for language */
  214.     Size                            textSize;                    /* length of body data */
  215.     Ptr                                textBuffer;                    /* body of the letter */
  216.     SMPPSendAs                        sendAs;                        /* Send as Letter,Enclosure,Image */
  217.     Byte                            padByte;
  218.     SMPEnclosureDescriptorPtr        enclosures;                    /* files to be enclosed */
  219.     SMPDrawImageUPP                    drawImageProc;                /* For imaging */
  220.     long                            imageRefCon;                /* For imaging */
  221.     Boolean                            supportsColor;                /* For imaging - set to true if you application supports color imaging */
  222.     Boolean                            filler1;
  223. };
  224.  
  225. typedef struct SMPLetterPB SMPLetterPB;
  226.  
  227. typedef SMPLetterPB *SMPLetterPBPtr;
  228.  
  229.  
  230. enum {
  231.     kSMPAppMustHandleEventBit,
  232.     kSMPAppShouldIgnoreEventBit,
  233.     kSMPContractedBit,
  234.     kSMPExpandedBit,
  235.     kSMPMailerBecomesTargetBit,
  236.     kSMPAppBecomesTargetBit,
  237.     kSMPCursorOverMailerBit,
  238.     kSMPCreateCopyWindowBit,
  239.     kSMPDisposeCopyWindowBit
  240. };
  241.  
  242. /* Values of SMPMailerResult */
  243. enum {
  244.     kSMPAppMustHandleEventMask    = 1 << kSMPAppMustHandleEventBit,
  245.     kSMPAppShouldIgnoreEventMask = 1 << kSMPAppShouldIgnoreEventBit,
  246.     kSMPContractedMask            = 1 << kSMPContractedBit,
  247.     kSMPExpandedMask            = 1 << kSMPExpandedBit,
  248.     kSMPMailerBecomesTargetMask    = 1 << kSMPMailerBecomesTargetBit,
  249.     kSMPAppBecomesTargetMask    = 1 << kSMPAppBecomesTargetBit,
  250.     kSMPCursorOverMailerMask    = 1 << kSMPCursorOverMailerBit,
  251.     kSMPCreateCopyWindowMask    = 1 << kSMPCreateCopyWindowBit,
  252.     kSMPDisposeCopyWindowMask    = 1 << kSMPDisposeCopyWindowBit
  253. };
  254.  
  255. typedef unsigned long SMPMailerResult;
  256.  
  257. /* Values of SMPMailerComponent*/
  258.  
  259. enum {
  260.     kSMPOther                    = -1,
  261.     kSMPFrom                    = 32,
  262.     kSMPTo                        = 20,
  263.     kSMPRegarding                = 22,
  264.     kSMPSendDateTime            = 29,
  265.     kSMPAttachments                = 26,
  266.     kSMPAddressOMatic            = 16
  267. };
  268.  
  269. typedef unsigned long SMPMailerComponent;
  270.  
  271.  
  272. enum {
  273.     kSMPToAddress                = kMailToBit,
  274.     kSMPCCAddress                = kMailCcBit,
  275.     kSMPBCCAddress                = kMailBccBit
  276. };
  277.  
  278. typedef MailAttributeID SMPAddressType;
  279.  
  280.  
  281. enum {
  282.     kSMPUndoCommand,
  283.     kSMPCutCommand,
  284.     kSMPCopyCommand,
  285.     kSMPPasteCommand,
  286.     kSMPClearCommand,
  287.     kSMPSelectAllCommand
  288. };
  289.  
  290. typedef unsigned short SMPEditCommand;
  291.  
  292.  
  293. enum {
  294.     kSMPUndoDisabled,
  295.     kSMPAppMayUndo,
  296.     kSMPMailerUndo
  297. };
  298.  
  299. typedef unsigned short SMPUndoState;
  300.  
  301. /*
  302. SMPSendFormatMask:
  303.  
  304. Bitfield indicating which combinations of formats are included in,
  305. should be included or, or can be included in a letter.
  306. */
  307.  
  308. enum {
  309.     kSMPNativeBit,
  310.     kSMPImageBit,
  311.     kSMPStandardInterchangeBit
  312. };
  313.  
  314. /* Values of SMPSendFormatMask */
  315. enum {
  316.     kSMPNativeMask                = 1 << kSMPNativeBit,
  317.     kSMPImageMask                = 1 << kSMPImageBit,
  318.     kSMPStandardInterchangeMask    = 1 << kSMPStandardInterchangeBit
  319. };
  320.  
  321. typedef unsigned long SMPSendFormatMask;
  322.  
  323. /*
  324.     Pseudo-events passed to the clients filter proc for initialization and cleanup.
  325. */
  326.  
  327. enum {
  328.     kSMPSendOptionsStart        = -1,
  329.     kSMPSendOptionsEnd            = -2
  330. };
  331.  
  332. /*
  333. SMPSendFormatMask:
  334.  
  335. Structure describing the format of a letter.  If kSMPNativeMask bit is set, the whichNativeFormat field indicates which of the client-defined formats to use.
  336. */
  337. struct SMPSendFormat {
  338.     SMPSendFormatMask                whichFormats;
  339.     short                            whichNativeFormat;            /* 0 based */
  340. };
  341.  
  342. typedef struct SMPSendFormat SMPSendFormat;
  343.  
  344. struct SMPLetterInfo {
  345.     OSType                            letterCreator;
  346.     OSType                            letterType;
  347.     RString32                        subject;
  348.     RString32                        sender;
  349. };
  350.  
  351. typedef struct SMPLetterInfo SMPLetterInfo;
  352.  
  353.  
  354. enum {
  355.     kSMPSave,
  356.     kSMPSaveAs,
  357.     kSMPSaveACopy
  358. };
  359.  
  360. typedef unsigned short SMPSaveType;
  361.  
  362. typedef pascal WindowPtr (*FrontWindowProcPtr)(long clientData);
  363. typedef pascal void (*PrepareMailerForDrawingProcPtr)(WindowPtr window, long clientData);
  364. typedef pascal Boolean (*SendOptionsFilterProcPtr)(DialogPtr theDialog, EventRecord *theEvent, short itemHit, long clientData);
  365.  
  366. #if GENERATINGCFM
  367. typedef UniversalProcPtr FrontWindowUPP;
  368. typedef UniversalProcPtr PrepareMailerForDrawingUPP;
  369. typedef UniversalProcPtr SendOptionsFilterUPP;
  370. #else
  371. typedef FrontWindowProcPtr FrontWindowUPP;
  372. typedef PrepareMailerForDrawingProcPtr PrepareMailerForDrawingUPP;
  373. typedef SendOptionsFilterProcPtr SendOptionsFilterUPP;
  374. #endif
  375.  
  376. enum {
  377.     uppFrontWindowProcInfo = kPascalStackBased
  378.          | RESULT_SIZE(SIZE_CODE(sizeof(WindowPtr)))
  379.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))),
  380.     uppPrepareMailerForDrawingProcInfo = kPascalStackBased
  381.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(WindowPtr)))
  382.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))),
  383.     uppSendOptionsFilterProcInfo = kPascalStackBased
  384.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  385.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DialogPtr)))
  386.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(EventRecord*)))
  387.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short)))
  388.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long)))
  389. };
  390.  
  391. #if GENERATINGCFM
  392. #define NewFrontWindowProc(userRoutine)        \
  393.         (FrontWindowUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppFrontWindowProcInfo, GetCurrentArchitecture())
  394. #define NewPrepareMailerForDrawingProc(userRoutine)        \
  395.         (PrepareMailerForDrawingUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppPrepareMailerForDrawingProcInfo, GetCurrentArchitecture())
  396. #define NewSendOptionsFilterProc(userRoutine)        \
  397.         (SendOptionsFilterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSendOptionsFilterProcInfo, GetCurrentArchitecture())
  398. #else
  399. #define NewFrontWindowProc(userRoutine)        \
  400.         ((FrontWindowUPP) (userRoutine))
  401. #define NewPrepareMailerForDrawingProc(userRoutine)        \
  402.         ((PrepareMailerForDrawingUPP) (userRoutine))
  403. #define NewSendOptionsFilterProc(userRoutine)        \
  404.         ((SendOptionsFilterUPP) (userRoutine))
  405. #endif
  406.  
  407. #if GENERATINGCFM
  408. #define CallFrontWindowProc(userRoutine, clientData)        \
  409.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppFrontWindowProcInfo, (clientData))
  410. #define CallPrepareMailerForDrawingProc(userRoutine, window, clientData)        \
  411.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppPrepareMailerForDrawingProcInfo, (window), (clientData))
  412. #define CallSendOptionsFilterProc(userRoutine, theDialog, theEvent, itemHit, clientData)        \
  413.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSendOptionsFilterProcInfo, (theDialog), (theEvent), (itemHit), (clientData))
  414. #else
  415. #define CallFrontWindowProc(userRoutine, clientData)        \
  416.         (*(userRoutine))((clientData))
  417. #define CallPrepareMailerForDrawingProc(userRoutine, window, clientData)        \
  418.         (*(userRoutine))((window), (clientData))
  419. #define CallSendOptionsFilterProc(userRoutine, theDialog, theEvent, itemHit, clientData)        \
  420.         (*(userRoutine))((theDialog), (theEvent), (itemHit), (clientData))
  421. #endif
  422.  
  423. #define kSMPGetDimensions 4700
  424. #define kSMPNewMailer 4701
  425. #define kSMPDisposeMailer 4702
  426. #define kSMPMailerEvent 4703
  427. #define kSMPMailerEditCommand 4704
  428. #define kSMPMailerForward 4705
  429. #define kSMPMailerReply 4706
  430. #define kSMPGetMailerState 4707
  431. #define kSMPPrepareCoverPages 4708
  432. #define kSMPDrawNthCoverPage 4709
  433. #define kSMPBeginSave 4710
  434. #define kSMPBeginSend 4711
  435. #define kSMPOpenLetter 4712
  436. #define kSMPDrawMailer 4713
  437. #define kSMPMoveMailer 4714
  438. #define kSMPSetSubject 4715
  439. #define kSMPSetFromIdentity 4716
  440. #define kSMPAddAddress 4717
  441. #define kSMPAddAttachment 4718
  442. #define kSMPContentChanged 4719
  443. #define kSMPEndSave 4720
  444. #define kSMPEndSend 4721
  445. #define kSMPExpandOrContract 4722
  446. #define kSMPBecomeTarget 4723
  447. #define kSMPGetTabInfo 4724
  448. #define kSMPClearUndo 4725
  449. #define kSMPAttachDialog 4726
  450. #define kSMPGetComponentSize 4727
  451. #define kSMPGetComponentInfo 4728
  452. #define kSMPGetListItemInfo 4729
  453. #define kSMPAddContent 4730
  454. #define kSMPReadContent 4731
  455. #define kSMPGetFontNameFromLetter 4732
  456. #define kSMPAddMainEnclosure 4733
  457. #define kSMPGetMainEnclosureFSSpec 4734
  458. #define kSMPAddBlock 4735
  459. #define kSMPReadBlock 4736
  460. #define kSMPEnumerateBlocks 4737
  461. #define kSMPImage 4738
  462. #define kSMPInitMailer 4741
  463. #define kSMPGetNextLetter 4742
  464. #define kSMPPrepareToClose 4743
  465. #define kSMPCloseOptionsDialog 4744
  466. #define kSMPPrepareToChange 4745
  467. #define kSMPGetLetterInfo 4746
  468. #define kSMPTagDialog 4747
  469. #define kSMPSendOptionsDialog 5000
  470. struct SMPMailerState {
  471.     short                            mailerCount;
  472.     short                            currentMailer;
  473.     Point                            upperLeft;
  474.     Boolean                            hasBeenReceived;
  475.     Boolean                            isTarget;
  476.     Boolean                            isExpanded;
  477.     Boolean                            canMoveToTrash;
  478.     Boolean                            canTag;
  479.     Byte                            padByte2;
  480.     unsigned long                    changeCount;
  481.     SMPMailerComponent                targetComponent;
  482.     Boolean                            canCut;
  483.     Boolean                            canCopy;
  484.     Boolean                            canPaste;
  485.     Boolean                            canClear;
  486.     Boolean                            canSelectAll;
  487.     Byte                            padByte3;
  488.     SMPUndoState                    undoState;
  489.     Str63                            undoWhat;
  490. };
  491.  
  492. typedef struct SMPMailerState SMPMailerState;
  493.  
  494. struct SMPSendOptions {
  495.     Boolean                            signWhenSent;
  496.     IPMPriority                        priority;
  497. };
  498.  
  499. typedef struct SMPSendOptions SMPSendOptions;
  500.  
  501. typedef SMPSendOptions *SMPSendOptionsPtr, **SMPSendOptionsHandle;
  502.  
  503. struct SMPCloseOptions {
  504.     Boolean                            moveToTrash;
  505.     Boolean                            addTag;
  506.     RString32                        tag;
  507. };
  508.  
  509. typedef struct SMPCloseOptions SMPCloseOptions;
  510.  
  511. typedef SMPCloseOptions *SMPCloseOptionsPtr;
  512.  
  513. /*----------------------------------------------------------------------------------------
  514.     Send Package Routines
  515. ----------------------------------------------------------------------------------------*/
  516. #define kSMPSendLetter 500
  517. #define kSMPResolveToRecipient 1100
  518. #define kSMPNewPage 2100
  519. #define kSMPImageErr 2101
  520. extern pascal OSErr SMPSendLetter(SMPLetterPBPtr theLetter)
  521.  FOURWORDINLINE(0x203C, 2, 500, 0xAA5D);
  522. extern pascal OSErr SMPNewPage(OpenCPicParams *newHeader)
  523.  FOURWORDINLINE(0x203C, 2, 2100, 0xAA5D);
  524. extern pascal OSErr SMPImageErr(void)
  525.  FOURWORDINLINE(0x203C, 0, 2101, 0xAA5D);
  526. extern pascal OSErr SMPResolveToRecipient(PackedDSSpecPtr dsSpec, SMPRecipientDescriptorPtr *recipientList, AuthIdentity identity)
  527.  FOURWORDINLINE(0x203C, 6, 1100, 0xAA5D);
  528. extern pascal OSErr SMPInitMailer(long mailerVersion)
  529.  FOURWORDINLINE(0x203C, 2, 4741, 0xAA5D);
  530. extern pascal OSErr SMPGetDimensions(short *width, short *contractedHeight, short *expandedHeight)
  531.  FOURWORDINLINE(0x203C, 6, 4700, 0xAA5D);
  532. extern pascal OSErr SMPGetTabInfo(SMPMailerComponent *firstTab, SMPMailerComponent *lastTab)
  533.  FOURWORDINLINE(0x203C, 4, 4724, 0xAA5D);
  534. extern pascal OSErr SMPNewMailer(WindowPtr window, Point upperLeft, Boolean canContract, Boolean initiallyExpanded, AuthIdentity identity, PrepareMailerForDrawingUPP prepareMailerForDrawingCB, long clientData)
  535.  FOURWORDINLINE(0x203C, 12, 4701, 0xAA5D);
  536. extern pascal OSErr SMPPrepareToClose(WindowPtr window)
  537.  FOURWORDINLINE(0x203C, 2, 4743, 0xAA5D);
  538. extern pascal OSErr SMPCloseOptionsDialog(WindowPtr window, SMPCloseOptionsPtr closeOptions)
  539.  FOURWORDINLINE(0x203C, 4, 4744, 0xAA5D);
  540. extern pascal OSErr SMPTagDialog(WindowPtr window, RString32 *theTag)
  541.  FOURWORDINLINE(0x203C, 4, 4747, 0xAA5D);
  542. extern pascal OSErr SMPDisposeMailer(WindowPtr window, SMPCloseOptionsPtr closeOptions)
  543.  FOURWORDINLINE(0x203C, 4, 4702, 0xAA5D);
  544. extern pascal OSErr SMPMailerEvent(const EventRecord *event, SMPMailerResult *whatHappened, FrontWindowUPP frontWindowCB, long clientData)
  545.  FOURWORDINLINE(0x203C, 8, 4703, 0xAA5D);
  546. extern pascal OSErr SMPClearUndo(WindowPtr window)
  547.  FOURWORDINLINE(0x203C, 2, 4725, 0xAA5D);
  548. extern pascal OSErr SMPMailerEditCommand(WindowPtr window, SMPEditCommand command, SMPMailerResult *whatHappened)
  549.  FOURWORDINLINE(0x203C, 5, 4704, 0xAA5D);
  550. extern pascal OSErr SMPMailerForward(WindowPtr window, AuthIdentity from)
  551.  FOURWORDINLINE(0x203C, 4, 4705, 0xAA5D);
  552. extern pascal OSErr SMPMailerReply(WindowPtr originalLetter, WindowPtr newLetter, Boolean replyToAll, Point upperLeft, Boolean canContract, Boolean initiallyExpanded, AuthIdentity identity, PrepareMailerForDrawingUPP prepareMailerForDrawingCB, long clientData)
  553.  FOURWORDINLINE(0x203C, 15, 4706, 0xAA5D);
  554. extern pascal OSErr SMPGetMailerState(WindowPtr window, SMPMailerState *itsState)
  555.  FOURWORDINLINE(0x203C, 4, 4707, 0xAA5D);
  556. extern pascal OSErr SMPSendOptionsDialog(WindowPtr window, Str255 documentName, StringPtr nativeFormatNames[], unsigned short nameCount, SMPSendFormatMask canSend, SMPSendFormat *currentFormat, SendOptionsFilterUPP filterProc, long clientData, SMPSendFormat *shouldSend, SMPSendOptionsPtr sendOptions)
  557.  FOURWORDINLINE(0x203C, 19, 5000, 0xAA5D);
  558. extern pascal OSErr SMPPrepareCoverPages(WindowPtr window, short *pageCount)
  559.  FOURWORDINLINE(0x203C, 4, 4708, 0xAA5D);
  560. extern pascal OSErr SMPDrawNthCoverPage(WindowPtr window, short pageNumber, Boolean doneDrawingCoverPages)
  561.  FOURWORDINLINE(0x203C, 4, 4709, 0xAA5D);
  562. extern pascal OSErr SMPPrepareToChange(WindowPtr window)
  563.  FOURWORDINLINE(0x203C, 2, 4745, 0xAA5D);
  564. extern pascal OSErr SMPContentChanged(WindowPtr window)
  565.  FOURWORDINLINE(0x203C, 2, 4719, 0xAA5D);
  566. extern pascal OSErr SMPBeginSave(WindowPtr window, const FSSpec *diskLetter, OSType creator, OSType fileType, SMPSaveType saveType, Boolean *mustAddContent)
  567.  FOURWORDINLINE(0x203C, 11, 4710, 0xAA5D);
  568. extern pascal OSErr SMPEndSave(WindowPtr window, Boolean okToSave)
  569.  FOURWORDINLINE(0x203C, 3, 4720, 0xAA5D);
  570. extern pascal OSErr SMPBeginSend(WindowPtr window, OSType creator, OSType fileType, SMPSendOptionsPtr sendOptions, Boolean *mustAddContent)
  571.  FOURWORDINLINE(0x203C, 10, 4711, 0xAA5D);
  572. extern pascal OSErr SMPEndSend(WindowPtr window, Boolean okToSend)
  573.  FOURWORDINLINE(0x203C, 3, 4721, 0xAA5D);
  574. extern pascal OSErr SMPOpenLetter(const LetterDescriptor *letter, WindowPtr window, Point upperLeft, Boolean canContract, Boolean initiallyExpanded, PrepareMailerForDrawingUPP prepareMailerForDrawingCB, long clientData)
  575.  FOURWORDINLINE(0x203C, 12, 4712, 0xAA5D);
  576. extern pascal OSErr SMPAddMainEnclosure(WindowPtr window, const FSSpec *enclosure)
  577.  FOURWORDINLINE(0x203C, 4, 4733, 0xAA5D);
  578. extern pascal OSErr SMPGetMainEnclosureFSSpec(WindowPtr window, FSSpec *enclosureDir)
  579.  FOURWORDINLINE(0x203C, 4, 4734, 0xAA5D);
  580. extern pascal OSErr SMPAddContent(WindowPtr window, MailSegmentType segmentType, Boolean appendFlag, void *buffer, unsigned long bufferSize, StScrpRec *textScrap, Boolean startNewScript, ScriptCode script)
  581.  FOURWORDINLINE(0x203C, 12, 4730, 0xAA5D);
  582. extern pascal OSErr SMPReadContent(WindowPtr window, MailSegmentMask segmentTypeMask, void *buffer, unsigned long bufferSize, unsigned long *dataSize, StScrpRec *textScrap, ScriptCode *script, MailSegmentType *segmentType, Boolean *endOfScript, Boolean *endOfSegment, Boolean *endOfContent, long *segmentLength, long *segmentID)
  583.  FOURWORDINLINE(0x203C, 25, 4731, 0xAA5D);
  584. extern pascal OSErr SMPGetFontNameFromLetter(WindowPtr window, short fontNum, Str255 fontName, Boolean doneWithFontTable)
  585.  FOURWORDINLINE(0x203C, 6, 4732, 0xAA5D);
  586. extern pascal OSErr SMPAddBlock(WindowPtr window, const OCECreatorType *blockType, Boolean append, void *buffer, unsigned long bufferSize, MailBlockMode mode, unsigned long offset)
  587.  FOURWORDINLINE(0x203C, 12, 4735, 0xAA5D);
  588. extern pascal OSErr SMPReadBlock(WindowPtr window, const OCECreatorType *blockType, unsigned short blockIndex, void *buffer, unsigned long bufferSize, unsigned long dataOffset, unsigned long *dataSize, Boolean *endOfBlock, unsigned long *remaining)
  589.  FOURWORDINLINE(0x203C, 17, 4736, 0xAA5D);
  590. extern pascal OSErr SMPEnumerateBlocks(WindowPtr window, unsigned short startIndex, void *buffer, unsigned long bufferSize, unsigned long *dataSize, unsigned short *nextIndex, Boolean *more)
  591.  FOURWORDINLINE(0x203C, 13, 4737, 0xAA5D);
  592. extern pascal OSErr SMPDrawMailer(WindowPtr window)
  593.  FOURWORDINLINE(0x203C, 2, 4713, 0xAA5D);
  594. extern pascal OSErr SMPSetSubject(WindowPtr window, const RString *text)
  595.  FOURWORDINLINE(0x203C, 4, 4715, 0xAA5D);
  596. extern pascal OSErr SMPSetFromIdentity(WindowPtr window, AuthIdentity from)
  597.  FOURWORDINLINE(0x203C, 4, 4716, 0xAA5D);
  598. extern pascal OSErr SMPAddAddress(WindowPtr window, SMPAddressType addrType, OCEPackedRecipient *address)
  599.  FOURWORDINLINE(0x203C, 5, 4717, 0xAA5D);
  600. extern pascal OSErr SMPAddAttachment(WindowPtr window, const FSSpec *attachment)
  601.  FOURWORDINLINE(0x203C, 4, 4718, 0xAA5D);
  602. extern pascal OSErr SMPAttachDialog(WindowPtr window)
  603.  FOURWORDINLINE(0x203C, 2, 4726, 0xAA5D);
  604. extern pascal OSErr SMPExpandOrContract(WindowPtr window, Boolean expand)
  605.  FOURWORDINLINE(0x203C, 3, 4722, 0xAA5D);
  606. extern pascal OSErr SMPMoveMailer(WindowPtr window, short dh, short dv)
  607.  FOURWORDINLINE(0x203C, 4, 4714, 0xAA5D);
  608. extern pascal OSErr SMPBecomeTarget(WindowPtr window, Boolean becomeTarget, SMPMailerComponent whichField)
  609.  FOURWORDINLINE(0x203C, 5, 4723, 0xAA5D);
  610. extern pascal OSErr SMPGetComponentSize(WindowPtr window, unsigned short whichMailer, SMPMailerComponent whichField, unsigned short *size)
  611.  FOURWORDINLINE(0x203C, 7, 4727, 0xAA5D);
  612. extern pascal OSErr SMPGetComponentInfo(WindowPtr window, unsigned short whichMailer, SMPMailerComponent whichField, void *buffer)
  613.  FOURWORDINLINE(0x203C, 7, 4728, 0xAA5D);
  614. extern pascal OSErr SMPGetListItemInfo(WindowPtr window, unsigned short whichMailer, SMPMailerComponent whichField, void *buffer, unsigned long bufferLength, unsigned short startItem, unsigned short *itemCount, unsigned short *nextItem, Boolean *more)
  615.  FOURWORDINLINE(0x203C, 16, 4729, 0xAA5D);
  616. extern pascal OSErr SMPImage(WindowPtr window, SMPDrawImageUPP drawImageProc, long imageRefCon, Boolean supportsColor)
  617.  FOURWORDINLINE(0x203C, 7, 4738, 0xAA5D);
  618. extern pascal OSErr SMPGetNextLetter(OSType *typesList, short numTypes, LetterDescriptor *adjacentLetter)
  619.  FOURWORDINLINE(0x203C, 5, 4742, 0xAA5D);
  620. extern pascal OSErr SMPGetLetterInfo(LetterSpec *mailboxSpec, SMPLetterInfo *info)
  621.  FOURWORDINLINE(0x203C, 4, 4746, 0xAA5D);
  622.  
  623. #if PRAGMA_IMPORT_SUPPORTED
  624. #pragma import off
  625. #endif
  626.  
  627. #if PRAGMA_ALIGN_SUPPORTED
  628. #pragma options align=reset
  629. #endif
  630.  
  631. #ifdef __cplusplus
  632. }
  633. #endif
  634.  
  635. #endif /* __OCESTANDARDMAIL__ */
  636.